home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs10.d81 / darkter4.arc / DT4.1670.PAL (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  4KB  |  197 lines

  1. 1000 REM * DARKTERM 4.0 (C) 1986 D.S.S.
  2. 1010 REM * 1670 MODEM MODULE SOURCE
  3. 1020 REM *
  4. 1030 OPEN2,8,1,"@0:DT4.MODEM 1670"
  5. 1040 SYS700
  6. 1050 .OPT O2
  7. 1060 ;
  8. 1070 CHKIN  =$FFC6 ; KERNAL EQUATES
  9. 1080 CHKOUT =$FFC9
  10. 1090 CHRIN  =$FFCF
  11. 1100 CHROUT =$FFD2
  12. 1110 CLRCHN =$FFCC
  13. 1120 CLOSE  =$FFC3
  14. 1130 OPEN   =$FFC0
  15. 1140 SETLFS =$FFBA
  16. 1150 SETNAM =$FFBD
  17. 1160 GETIN  =$FFE4
  18. 1170 READST =$FFB7
  19. 1180 PLOT   =$FFF0
  20. 1190 ;
  21. 1200 TEXT =18 ; WE'LL USE THIS FOR PTR
  22. 1210 ST =120 ; USE TOP OF INPUT BUFFER
  23. 1220 ;
  24. 1230 DDELAY =878 ; SETUP EQUATES
  25. 1240 CDELAY =880
  26. 1250 HDELAY =881
  27. 1260 ;
  28. 1270 MILLI  =$090C ; ACCESS ROUTINES
  29. 1280 TIWAIT =$090F
  30. 1290 ;
  31. 1300 *=$4600 ; START HERE
  32. 1310 JMP AUTODIAL
  33. 1320 JMP AANSWER
  34. 1330 JMP ONLINE ; PICK UP
  35. 1340 JMP OFFLINE ; HANG UP
  36. 1350 ;
  37. 1360 ; * NOTE PULSE DIAL DELAY OF
  38. 1370 ; * OF ZERO TONE DIALS, NON-ZERO
  39. 1380 ; * WILL PULSE DIAL
  40. 1390 ;
  41. 1400 AUTODIAL STX TEXT ; SAVE ADDRESS
  42. 1410 STY TEXT+1 ; OF DIAL TEXT STRING
  43. 1420 JSR RETURN ; SEND COUPLE RETURNS
  44. 1430 LDA HDELAY ; WAIT HDELAY SECONDS
  45. 1440 JSR WAIT
  46. 1450 LDX #5
  47. 1460 JSR CHKOUT ; GET READY TO DIAL
  48. 1470 LDA #"A" ; SEND AT FIRST
  49. 1480 JSR CHROUT
  50. 1490 JSR HOLD
  51. 1500 LDA #"T"
  52. 1510 JSR CHROUT
  53. 1520 JSR HOLD
  54. 1530 LDA #"D"
  55. 1540 JSR CHROUT
  56. 1550 JSR HOLD
  57. 1560 LDA DDELAY ; CHECK PULSE OR TONE
  58. 1570 BNE PDIAL
  59. 1580 LDA #"T" ; TONE
  60. 1590 .BYT $2C
  61. 1600 PDIAL LDA #"P" ; PULSE
  62. 1610 JSR CHROUT
  63. 1620 JSR HOLD
  64. 1630 LDY #0 ; INDEX TO START
  65. 1640 AUTO1 LDA (TEXT),Y ; GET STRING
  66. 1650 CMP #32 ; SKIP SPACES
  67. 1660 BEQ NEXT
  68. 1670 AND #127 ; MASK FOR ASCII UPCASE
  69. 1680 JSR CHROUT ; SEND CHARACTER
  70. 1690 JSR HOLD ; AND WAIT
  71. 1700 NEXT INY
  72. 1710 CPY #18 ; DONE ALL 18 CHARS
  73. 1720 BNE AUTO1 ; NO, (null) BACK
  74. 1730 LDA #13 ; SEND RETURN
  75. 1740 JSR CHROUT
  76. 1750 JSR HOLD
  77. 1760 JSR CLRCHN
  78. 1770 LDA CDELAY ; WAIT OUT THE DELAY
  79. 1780 JSR WAIT
  80. 1790 JSR RETURN ; SEND COUPLE RETURNS
  81. 1800 LDA 56577 ; HAVE A CARRIER
  82. 1810 AND #16
  83. 1820 BEQ AUTO4 ; YES, SIGNAL IT
  84. 1830 SEC ; NO, SET ZERO FLAG TRUE
  85. 1840 LDA #0 ; AND SET CARRY (NOT ABORT)
  86. 1850 RTS
  87. 1860 AUTO4 SEC ; HAVE CARRIER, SET
  88. 1870 LDA #1 ; ZERO FALSE
  89. 1880 RTS ; EXIT
  90. 1890 ABORT LDA 145 ; CHECK STOP KEY
  91. 1900 CMP #$7F
  92. 1910 BNE ABO1 ; NO, (null) BACK
  93. 1920 ABO0 PLA ; PULL RETURN ADDRESS
  94. 1930 PLA
  95. 1940 CLC ; CLEAR THE CARRY
  96. 1950 ABO1 RTS ; AND EXIT TO TERM
  97. 1960 WAIT TAX ; 1 SECOND COUNTER
  98. 1970 W0 LDA #0
  99. 1980 STA 160
  100. 1990 STA 161
  101. 2000 STA 162
  102. 2010 W1 LDA 145 ; CHECK FOR ABORT
  103. 2020 CMP #$7F ; DURING THE WAIT
  104. 2030 BEQ ABO0
  105. 2040 LDA 162
  106. 2050 CMP #60
  107. 2060 BCC W1
  108. 2070 DEX
  109. 2080 BMI W2
  110. 2090 BNE W0
  111. 2100 W2 RTS
  112. 2110 OFFLINE LDA #70 ; WAIT >1 SECOND
  113. 2120 JSR TIWAIT
  114. 2130 LDX #5
  115. 2140 JSR CHKOUT ; SEND "+++" SEQUENCE
  116. 2150 LDA #"+"
  117. 2160 JSR CHROUT
  118. 2170 JSR CHROUT
  119. 2180 JSR CHROUT ; 3 TIMES
  120. 2190 JSR CLRCHN
  121. 2200 LDA #70 ; WAIT ANOTHER >1 SEC
  122. 2210 JMP TIWAIT ; AND EXIT
  123. 2220 ;
  124. 2230 ; * ON LINE - SEND ATA COMMAND
  125. 2240 ;
  126. 2250 ONLINE JSR SMART
  127. 2260 .ASC "ATA" ; DO IT
  128. 2270 .BYT 13,0
  129. 2280 RTS ; EXIT
  130. 2290 ;
  131. 2300 ; * ANSWER ROUTINE
  132. 2310 ; (MAKE SURE PHONE IS ON-HOOK)
  133. 2320 ;
  134. 2330 AANSWER JSR SMART
  135. 2340 .ASC "AT S0=1" ; RINGS TO ONE
  136. 2350 .BYT 13,0
  137. 2360 ANS1 LDA 56577 ; WE'LL CHECK
  138. 2370 AND #16 ; CARRIER BIT
  139. 2380 BEQ ANS2
  140. 2390 LDA 145 ; CHECK STOP KEY
  141. 2400 CMP #$7F
  142. 2410 BNE ANS1 ; NO
  143. 2420 CLC
  144. 2430 RTS ; ABORT
  145. 2440 ANS2 SEC ; CARRIER DETECTED
  146. 2450 RTS
  147. 2460 ;
  148. 2470 ; * SEND SMART COMMAND
  149. 2480 ;
  150. 2490 SMART LDA 56577
  151. 2500 AND #16 ; MAKE SURE NO CARRIER
  152. 2510 BNE SM1
  153. 2520 JSR OFFLINE ; HANG UP
  154. 2530 JMP SMART ; AND (null) BACK
  155. 2540 SM1 PLA
  156. 2550 STA ST ; SAVE START ADDR
  157. 2560 PLA
  158. 2570 STA ST+1
  159. 2580 LDX #5
  160. 2590 JSR CHKOUT
  161. 2600 LDA #40 ; WAIT .5 SEC
  162. 2610 JSR TIWAIT
  163. 2620 SM2 INC ST
  164. 2630 BNE SM3
  165. 2640 INC ST+1
  166. 2650 SM3 LDY #0
  167. 2660 JSR HOLD ; IDLE RS232
  168. 2670 LDA (ST),Y
  169. 2680 BEQ SM4
  170. 2690 JSR CHROUT
  171. 2700 JMP SM2 ; CONTINUE
  172. 2710 SM4 JSR CLRCHN
  173. 2720 LDA #40 ; WAIT .5 SEC AGAIN
  174. 2730 JSR TIWAIT
  175. 2740 LDA ST+1
  176. 2750 PHA
  177. 2760 LDA ST
  178. 2770 PHA
  179. 2780 RTS ; AND EXIT
  180. 2790 ;
  181. 2800 ; * IDLE RS-232 TRANSMIT BUFFER
  182. 2810 ;
  183. 2820 HOLD LDA $2A1
  184. 2830 LSR
  185. 2840 BCS HOLD
  186. 2850 RTS
  187. 2860 ;
  188. 2870 RETURN LDX #5
  189. 2880 JSR CHKOUT
  190. 2890 LDA #13
  191. 2900 JSR CHROUT
  192. 2910 JSR HOLD
  193. 2920 LDA #13
  194. 2930 JSR CHROUT
  195. 2940 JSR HOLD
  196. 2950 JMP CLRCHN
  197.